Raspberry Pi /RP2350 /USB /SIE_STATUS

Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text

Interpret as SIE_STATUS

31 2827 2423 2019 1615 1211 87 43 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (VBUS_DETECTED)VBUS_DETECTED 0LINE_STATE 0 (SUSPENDED)SUSPENDED 0SPEED 0 (VBUS_OVER_CURR)VBUS_OVER_CURR 0 (RESUME)RESUME 0 (RX_SHORT_PACKET)RX_SHORT_PACKET 0 (CONNECTED)CONNECTED 0 (SETUP_REC)SETUP_REC 0 (TRANS_COMPLETE)TRANS_COMPLETE 0 (BUS_RESET)BUS_RESET 0 (ENDPOINT_ERROR)ENDPOINT_ERROR 0 (CRC_ERROR)CRC_ERROR 0 (BIT_STUFF_ERROR)BIT_STUFF_ERROR 0 (RX_OVERFLOW)RX_OVERFLOW 0 (RX_TIMEOUT)RX_TIMEOUT 0 (NAK_REC)NAK_REC 0 (STALL_REC)STALL_REC 0 (ACK_REC)ACK_REC 0 (DATA_SEQ_ERROR)DATA_SEQ_ERROR

Description

SIE status register

Fields

VBUS_DETECTED

Device: VBUS Detected

LINE_STATE

USB bus line state

SUSPENDED

Bus in suspended state. Valid for device. Device will go into suspend if neither Keep Alive / SOF frames are enabled.

SPEED

Host: device speed. Disconnected = 00, LS = 01, FS = 10

VBUS_OVER_CURR

VBUS over current detected

RESUME

Host: Device has initiated a remote resume. Device: host has initiated a resume.

RX_SHORT_PACKET

Device or Host has received a short packet. This is when the data received is less than configured in the buffer control register. Device: If using double buffered mode on device the buffer select will not be toggled after writing status back to the buffer control register. This is to prevent any further transactions on that endpoint until the user has reset the buffer control registers. Host: the current transfer will be stopped early.

CONNECTED

Device: connected

SETUP_REC

Device: Setup packet received

TRANS_COMPLETE

Transaction complete.

Raised by device if:

  • An IN or OUT packet is sent with the LAST_BUFF bit set in the buffer control register

Raised by host if:

  • A setup packet is sent when no data in or data out transaction follows * An IN packet is received and the LAST_BUFF bit is set in the buffer control register * An IN packet is received with zero length * An OUT packet is sent and the LAST_BUFF bit is set
BUS_RESET

Device: bus reset received

ENDPOINT_ERROR

An endpoint has encountered an error. Read the ep_rx_error and ep_tx_error registers to find out which endpoint had an error.

CRC_ERROR

CRC Error. Raised by the Serial RX engine.

BIT_STUFF_ERROR

Bit Stuff Error. Raised by the Serial RX engine.

RX_OVERFLOW

RX overflow is raised by the Serial RX engine if the incoming data is too fast.

RX_TIMEOUT

RX timeout is raised by both the host and device if an ACK is not received in the maximum time specified by the USB spec.

NAK_REC

Host: NAK received

STALL_REC

Host: STALL received

ACK_REC

ACK received. Raised by both host and device.

DATA_SEQ_ERROR

Data Sequence Error.

The device can raise a sequence error in the following conditions:

  • A SETUP packet is received followed by a DATA1 packet (data phase should always be DATA0) * An OUT packet is received from the host but doesn’t match the data pid in the buffer control register read from DPSRAM

The host can raise a data sequence error in the following conditions:

  • An IN packet from the device has the wrong data PID

Links

() ()